package com.le.tester.book.effectivejava3rdchinese.articlenineteen;

import java.time.Instant;

/**
 * createTime：2022/8/6 14:06
 * description：继承子类并且重写父类在构造方法中调用的方法，不应该这么做
 */
public final class Sub extends Super {
    public int i = 0;

    //时间的实例，localTime转换Date可使用
    private final Instant instant;

    Sub() {
        instant = Instant.now();
//        System.out.println(instant);
    }

    @Override
    public void overWriteMe() {
        System.out.println("被调用的次数" + i++);
        System.out.println(instant);
    }

    public static void main(String[] args) {
        //注意在new Sub的时候，调用了一次父类的构造方法，
        //然而在构造方法里面，调用了重写的方法，会走到子类实现的方法里，然而并不能得到之类的全局变量，将有可能使得整个子类抛出异常
        Sub sub = new Sub();
//        Super aSuper = new Super();
//        aSuper.overWriteMe();
        sub.overWriteMe();
    }
}
